<html>

<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Eclipse Project Development</title>
<meta name="Author" content="Eclipse Project PMC">
<link rel="stylesheet" href="../../default_style.css" type="text/css">
</head>

<body>

<h1>Eclipse 2.1 High Priority Challenges</h1>
<p>Last revised October 2, 2002</p>
<p>The following key challenges confront Eclipse.&nbsp; To focus our efforts these challenges are
factored into two sets: the highest priority challenges
that we are addressing now, and other important challenges that we should
consider AFTER addressing the highest priority challenges.&nbsp; We will
regularly revise the contents of these lists to reflect current priorities.</p>
<h2>Highest Priority Challenges (that we are addressing now)</h2>
<h3>Allow user customizable key bindings</h3>
<p>Eclipse provides some support for configurable key bindings. The current
support is limited:</p>
<ul>
  <li>only the editor key bindings can be customized.</li>
  <li>the key bindings can only be changed by a plug-in contributor but not the
    end user.</li>
  <li>the current support is error prone for clients and puts a lot of burden on
    the editor and view contributors <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22568">22568</a>.</li>
</ul>
<p>In addition to making it possible for the user to edit the environment's key
bindings, there are additional customization possibilities including visible
actions and perspective layout.</p>
<p>Involved components: SWT, Platform UI, Text, JDT UI</p>
<p>Dynamic team (tasked Sept. 20, 2002): Mike Wilson, Andre Weinand, Kai-Uwe Maetzel, 
  Chris McLaren, Steve Northover</p>
<h3>More flexible project layout</h3>
<p>In Eclipse the contents of a single project needs to be under a single root.
There are complaints that this structure is too rigid. We have to understand
this complaints and investigate into a solution, see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6664">6664</a>,
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6144">6144</a> or the
newsgroup <a href="file:///C:/Documents%20and%20Settings/EGamma/Desktop/Challenges2-1.htm">http://dev.eclipse.org/newslists/news.eclipse.tools/msg19749.html</a>.</p>
<p>It would be desirable to have the output folder used by the Java builder to
be not under the project <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5043">5043</a>.
This allows storing the source on a network drive and the generated code on a
local drive.</p>
<p>For some projects parts of the source tree should be ignored for building
purposes.</p>
<p>Involved components: Platform Core, Platform UI, VCM, JDT Core, JDT UI</p>
<p>Dynamic team (tasked Sept. 19, 2002): DJ Houghton, Philippe Mulet, Jim des 
  Rivieres, Chris McLaren, John Arthorne</p>
<p>Also particpating: Kevin McGuire, Michael Valenta, John Wiegand, Jeff McAffer 
</p>
<p>Working documents:</p>
<ol>
  <li><a href="inflexible-projects-problem.html">Problem Definition - Inflexible 
    Project Structure</a></li>
  <li><a href="towards-more-flexible-projects.html">Towards More Flexible Project 
    Structure</a></li>
  <li><a href="flexible-projects-proposal.html">Flexible Project Structure</a></li>
</ol>
<h3>Add Workbench Navigation History</h3>
<p>When navigating code many editors can get opened. It is easy for the user to
lose context since there is no easy way to go back to a previous point in the
navigation path. There should be support for back/forward actions to enable
users to go back.</p>
<p>Issue tracking bug: <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5700">5700</a>.</p>
<p>Involved components: Platform UI, Text, JDT UI</p>
<p>Dynamic team: Eduardo Pereira, Kai-Uwe Maetzel</p>
<h3><b>Support building projects with circular dependencies</b></h3>
<p>For 2.0.2 we will provide a fix to improve error reporting when there are circular
projects. For 2.1 we will revisit this problem <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10262">10262</a>
to improve the build behavior.</p>
<p>Involved components: Platform Core, JDT Core, Platform UI.</p>
<p>Dynamic team (tasked Oct. 2, 2002): Philippe Mulet, Jim des Rivieres, John 
  Arthorne, Tod Creasey</p>
<h3>Improve file encoding support</h3>
<p>Eclipse allows to set the encoding used for reading and writing files for the
entire workspace. This is perceived as too limiting. The challenge here is to
describe the problem we want to solve, outline solution, and finally, to implement it.</p>
<p>Issue tracking bug: <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5399">5399</a>.</p>
<p>Involved components: Platform Core, Platform UI, Platform text, Search,
Compare, JDT UI, JDT Core.</p>
<h3>Improve startup time</h3>
<p>The time to start eclipse based products should be improved. This is
typically done by delaying the loading of plugins for as long as possible.
Additional opportunity for deferred activation of plugins should be investigated
including changing how (and how much) we recover UI state.&nbsp; There are also opportunities for improved tools to assist ISV's in
optimizing the time it takes for their plugins to load.&nbsp;&nbsp;</p>
<p>Involved components: Platform Core, Platform UI, (All)</p>
<h2>Other important challenges (that we should consider AFTER addressing the
highest priority challenges above)</h2>
<h3>Support multi-jar system libraries</h3>
<p>Eclipse can already use 1.4 level JREs and JDKs as the product runtime.&nbsp;
However, some recent JREs have started packaging their class libraries in
multiple jars (not a single rt.jar).&nbsp; This may require additional support
in JDT to make this both easy to define, and natural to use.</p>
<p>Involved components: All (testing JRE 1.4), JDT UI, JDT Core</p>
<h3>Improve Ant support</h3>
<p>Add support to navigate from Ant error output to the
corresponding source.</p>
<p>Involved components: Platform&nbsp; UI, Ant Core</p>
<h3>Add cheat sheets</h3>
<p>Cheat sheets are an
idea for providing better user assistance. For example, &quot;creation and
deployment of a plugin&quot; is a multi-step process that could be made easier
to follow if there was a guide, similar to a recipe that would track the user's
progress and provide both descriptive text that explains the steps involved and
integration with Eclipse to automate the process.</p>
<p>Involved components: Platform UI</p>
<h3>Add table of contents support to wizards</h3>
<p>Users may get lost in a complex wizard. For these cases a table of contents
may help provide the user context as well as assist in navigating.</p>
<p>Involved components: Platform UI</p>
<h3><strong>Improve update manager</strong></h3>
<p>Allow newly installed features to make the user aware of the new capabilities
that were installed as well as allowing the feature to customize the
environment.</p>
<p>Involved components: Platform UI, Install/Update</p>
<h3>Support floating toolbars and views</h3>
<p>There are cases where a floating view is useful - repetitive tasks or
sequenced instructions: e.g. Cheat sheets, palettes.&nbsp;&nbsp;Some developers want to maximize the edit area to use their entire screen and
then rely on floating toolbars to provide access to function.</p>
<p>Involved components: Platform UI, SWT</p>
<h3>&quot;Remote Projects&quot;</h3>
<p>This item is currently under-specified.&nbsp; We need to determine the correct
approach for clients to work with remote resources in the 2.1 timeframe.&nbsp;
Once we have closed on the direction, we can provide a more accurate
specification of this task.</p>
<p>Involved components: Unknown</p>

<h3>Allow editors to open files outside workspace</h3>
<p>It is a common request to be able to open a file that is not part of the
workspace with Eclipse.&nbsp; In addition, applications would like to provide OS
associations into Eclipse so double-clicking on a file on the Windows Explorer
would open the associated Eclipse editor.&nbsp; We need to define what
operations and capabilities would be available for&nbsp; these &quot;outside of
the workspace&quot; files</p>
<p>Involved components: Platform UI, Text</p>
<h3>File System Synchronization</h3>
<p>The handling of out of sync resources is not consistent. We should have a
common scheme and improved support for handling file system synchronization.</p>
<h3>Improve serviceability</h3>
<p> Under some circumstances error messages that are only appropriate to eclipse developers are
being presented to users. While at other times errors can cause the environment to
unexpectedly terminate. The task here is to improve our exception handling and to
come up with an approach that is suitable both for eclipse developers and
eclipse based products.</p>
<p>See <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12224">12224</a>, <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23369">23369</a>,
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1947">1947</a>, or the
newsgroup <a href="http://dev.eclipse.org/newslists/news.eclipse.tools/msg03734.html">http://dev.eclipse.org/newslists/news.eclipse.tools/msg03734.html</a></p>
<p>Involved components: Platform Core, SWT, Platform UI</p>
<h3>Make Eclipse a platform for developing more than an IDE</h3>
<p>There are two parts to this task, the first is to split out generally useful
frameworks like JFace and JFace Text into their own plugin the second is to
provide a stripped down workbench that can be the foundation for products that
are not IDE's.</p>
<p>Involved components: Platform UI</p>
<h3>Table Widget Scalability</h3>
<p>The existing SWT table widget is not well suited for presenting large data
models.&nbsp; Investigate if it is possible to achieve sufficient performance
from the existing widget.&nbsp; If it is not possible to achieve the desired
level of performance then a custom control should be developed.</p>
<p>Involved components: Platform UI, SWT</p>
<h3>Separate User Preferences from Workspace Preferences</h3>
<p>It should be possible to store user preferences that are not specific to a
workspace separate from the workspace. </p>
<p>Involved components: Platform Core, Platform UI</p>

</body>

</html>
